草庐IT

TypeScript 条件语句

全部标签

javascript - Typescript 中的工厂函数使用和不使用 new 关键字声明文件

以下代码将在ES5中创建一个工厂函数:functionMyClass(val){if(!(thisinstanceofMyClass)){returnnewMyClass(val);}this.val=val;}可以使用或不使用new关键字调用此函数:vara=newMyClass(5);varb=MyClass(5);这在Typescript中工作正常,但是我不知道如何使用merging创建声明文件描述了这两种行为。有办法做到这一点吗? 最佳答案 interfaceMyClass{val:{};}interfaceMyClassC

javascript - 如何使用 TypeScript 编译器 (TSC) 解析 Node.js ES6 (ESM) 模块。 TSC 不发出正确的文件扩展名

我正在尝试将我的TypeScript项目转换为JavaScript,但是,似乎有些不对劲。我将项目配置为通过"module":"ES6"解析为ES6模块(又名ESM)设置,但不能解决问题。这就是我的tsconfig.json配置如下:{"compilerOptions":{"module":"es6","target":"es6","lib":["es6"],"sourceMap":true,}}使用一对模块的测试用例:我使用两个模块编写了一个简单的测试用例senario。第一个模块—module1.ts—只导出一个常量,如下所示:>exportconsttestText="Itwor

javascript - typescript 路径映射未在 Node 应用程序中翻译

目前在node.js应用程序中使用typescript。我已经编译了我的应用程序,并且正在使用typescript'spathmappingfeature.'api/*'应该在根文件夹中查找。在开发工作中使用以下内容:nodemon--watchsrc-ets,tsx--exects-node-rtsconfig-paths/register--disableWarnings./src/index.tstsconfig-paths/register允许正确翻译require并且ts-node将正确执行/运行应用程序。现在,当我转向生产时,问题就来了。过去在生产中,我只是在文件夹上运行t

javascript - vue 2、typescript、mocha 和 karma 的代码覆盖率

我们将Vue2与Typescript和webpack3结合使用。Vuex用于状态管理。我们的测试与Karma以及Mocha、Sinon、Expect和Avoriaz一起运行。一切都很好,但我尝试使用Istanbul获得代码覆盖率,以更好地直观表示缺少哪些测试。文件夹结构的小型表示来源组件分享按钮按钮.vue按钮.tsindex.ts...测试单位组件分享按钮按钮.spec.test.tskarma.conf.jskarma.coverage.jsindex.ts...按钮.vuebutton.tsimport{Component,Prop,Vue}from'vue-property-d

javascript - 是否可以在 TypeScript 中使构造函数静态化?

我阅读了TypeScript中的静态构造函数,并亲自尝试了它,但它不起作用。我想通过它初始化一个静态变量(该方法只能调用一次)但是我得到以下编译器错误:Error:'static'modifiercannotappearonaconstructordeclaration.代码:exportclassDataManagement{privatestaticsubjects:string[];staticconstructor(){DataManagement.subjects=[];//somemorecodehere}} 最佳答案

javascript - 在全局代码中使用带标签的语句有什么问题?

我刚刚浏览了sourceofJSLint并注意到这段代码://Isthisalabeledstatement?//...if(next_token.labeled!==true||funct===global_funct){stop('unexpected_label_a',label);}//...有趣的部分是funct===global_funct比较。通过JSLint运行以下代码片段会引发“意外标签”错误,因为标签语句位于全局执行上下文中(我知道,这是一个愚蠢的例子。Here'safiddle.):loop:for(vari=0;i如果您将相同的片段放在函数中,JSLint会非常

javascript - 令人困惑的 es6 import -> export 语句

这是有效的javascript吗?它没有错误,而且似乎有效。export{defaultasChooser}from"./chooser";我的解释是:importdefaultfrom./chooser"export#1的结果asChooser这是正在发生的事情吗? 最佳答案 IsthisvalidJavaScript?是的。Isthiswhatishappening?是的。 关于javascript-令人困惑的es6import->export语句,我们在StackOverflow上

Javascript 命名空间和条件包含

我有一些这样组织的js文件(参见source):gmaps4rails.base.js:包含所有逻辑gmaps4rails.googlemaps.js:包含函数gmaps4rails.bing.js:包含与上一个文件同名的函数所以基本上,base调用createMarkers(),它在googlemaps和bing中。从现在开始,我只加载gmaps4rails.googlemaps.js和gmaps4rails.googlemaps.js中的一个,具体取决于我需要的mapAPI,所以它工作正常。现在我希望能够加载所有文件(并将它们分开),但当然只包含所需mapAPI的代码。基本上我想的

javascript - 包含 TypeScript 的解决方案使用 VS2013 不断加载

我在VisualStudio2013上,当我打开任何包含TypeScript的解决方案时,充实或准系统,我得到这个:(出于保密原因删除姓名)很快就会导致这个(可能是众所周知的)消息:最终我只能通过杀死特定进程来关闭session。我已经申请了VS2015,但这需要一个审批流程,这需要一段时间。与此同时,我更愿意让VS2013工作,特别是因为VS2015不保证修复它(它应该,但我不知道)。 最佳答案 IwouldprefertogetVS2013working,especiallysinceVS2015isn'tguaranteedt

javascript - 在 ES6 之前的 Typescript 中实现 Iterator<T> 的推荐方法

这个问题在这里已经有了答案:typescript:makeclassobjectsiterable(3个答案)关闭5年前。我有一个项目,其中包含许多理想情况下会实现Iterable的类和/或Iterator接口(interface)。但是我似乎找不到这些接口(interface)的标准TypeScript定义(例如在typescript-collections或一些类似的包中)。我知道这些在ECMAScript6中通过Symbol.iterator有所标准化。机制,但我的目标是ECMAScript5,并且在可预见的future将保持不变。我能否以某种方式获得这些接口(interface